home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Delphi 2.0 - Programmer's Utilities Power Pack
/
Delphi 2.0 Programmer's Utilities Power Pack.iso
/
e_to_l
/
hlpcloud
/
unit1.pas
< prev
Wrap
Pascal/Delphi Source File
|
1996-09-15
|
5KB
|
233 lines
unit Unit1;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ExtCtrls, HlpCloud, TileBack, Buttons,
Expedit, Prompt, Buttonex;
type
TForm1 = class(TForm)
Panel1 : TPanel;
Panel2 : TPanel;
PromptExt1 : TPromptExt;
ExpandEdit1 : TExpandEdit;
BitBtn1 : TBitBtn;
BitBtn2 : TBitBtn;
BitBtn3 : TBitBtn;
BitBtn4 : TBitBtn;
BitBtn6 : TBitBtn;
BitBtn7 : TBitBtn;
RadioButton1 : TRadioButton;
RadioButton2 : TRadioButton;
FD : TFontDialog;
Edit1 : TEdit;
TileBack1: TTileBack;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
RadioButton6: TRadioButton;
RadioButton7: TRadioButton;
ButtonExt1: TButtonExt;
HelpCloud1: THelpCloud;
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure HelpCloud1SetHintRect(Sender: TObject; memCanvas: TCanvas;
var Rect: TRect; Hint: String; drawCorner: THelpCloudCorner);
procedure HelpCloud1SetWinSize(Sender: TObject; memCanvas: TCanvas;
var Width, Height: Integer; Hint: String;
drawCorner: THelpCloudCorner);
private
public
constructor Create(AOwner: TComponent); override;
destructor Destroy;
end; { TForm1 }
var Form1 : TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
constructor TForm1.Create(AOwner: TComponent);
begin
inherited Create( AOwner );
HelpCloud1.Style := Standard;
Edit1.Text := HelpCloud1.Font.Name;
end;
destructor TForm1.Destroy;
begin
HelpCloud1.Style := Standard;
HelpCloud1.Bitmaps.UpperRight := nil;
HelpCloud1.Alignment := taCenter;
inherited Destroy;
end;
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
HelpCloud1.Color := clYellow;
end;
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
HelpCloud1.Font.Name := 'New Times Roman';
HelpCloud1.Font.Size := 12;
Edit1.Text := HelpCloud1.Font.Name;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
HelpCloud1.Style := Standard;
HelpCloud1.Bitmaps.UpperRight := nil;
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
HelpCloud1.Style := Bubble;
HelpCloud1.Bitmaps.UpperRight := nil;
end;
procedure TForm1.RadioButton7Click(Sender: TObject);
begin
HelpCloud1.Bitmaps.UpperRight := ButtonExt1.Bitmaps.up;
HelpCloud1.Bitmaps.TransparentColor := ButtonExt1.Bitmaps.TransparentColor;
end;
procedure TForm1.RadioButton5Click(Sender: TObject);
begin
HelpCloud1.Corner := LowerLeft;
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
HelpCloud1.Corner := UpperLeft;
end;
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
HelpCloud1.Corner := UpperRight;
end;
procedure TForm1.RadioButton6Click(Sender: TObject);
begin
HelpCloud1.Corner := LowerRight;
end;
procedure TForm1.BitBtn7Click(Sender: TObject);
begin
if (FD.Execute) then
begin
HelpCloud1.Font := FD.Font;
Edit1.Text := FD.Font.Name;
end;
end;
procedure TForm1.HelpCloud1SetHintRect(Sender: TObject;
memCanvas: TCanvas; var Rect: TRect; Hint: String;
drawCorner: THelpCloudCorner);
var
fwidth : integer;
fheight : integer;
bRect : TRect;
CHint : array [0..255] of char;
begin
{ Try and make the text rect as square as possible }
fwidth := memCanvas.TextWidth( Hint );
fheight := memCanvas.TextHeight( Hint );
if (fWidth > 50) then
fwidth := trunc( sqrt( fWidth * fheight ) +25)
else
fWidth := 50;
bRect := Bounds( 0, 0, fWidth, 0 );
DrawText( memCanvas.Handle,
StrPCopy( CHint, hint ),
-1,
bRect,
DT_CALCRECT or DT_LEFT or DT_WORDBREAK or DT_NOPREFIX);
InflateRect( bRect, 5, 5);
if ((bRect.Right - bRect.Left) < 40) then
bRect := Bounds( bRect.Left, bRect.Top, 40, bRect.Bottom - bRect.Top );
OffsetRect( bRect, rect.left+10, rect.top+10 );
rect := bRect;
end;
procedure TForm1.HelpCloud1SetWinSize(Sender: TObject;
memCanvas: TCanvas; var Width, Height: Integer; Hint: String;
drawCorner: THelpCloudCorner);
begin
Width := Width + 5;
Height := Height + 5;
end;
end.